//---------------------------------------------------------------------------

#ifndef h_gH
#define h_gH
//---------------------------------------------------------------------------
class HStage;
namespace h_g
{
   extern int LicQty;
   extern UTF8String BaseDir;
   extern UTF8String BinDir;
   extern int Interval;
   extern UTF8String WhistleFile;
   extern UTF8String EndSoundFile;
   extern bool Copyright;
   extern bool InitFail;
   extern bool ExitFlag;
   extern bool DebugFlag;
   extern bool AlarmEnableFlag;
   extern bool RememberPasswordFlag;
   extern UTF8String FadingPeriod;
   extern char JobNameDelimiter[2];
   extern vector<string> SpecialDateList;
   extern vector<string> ExcludeList;
   extern UTF8String MainformCaption;

   extern Graphics::TBitmap *Background;
   extern Graphics::TBitmap *CustLogo;
   extern Graphics::TBitmap *Homepage;
   extern Graphics::TBitmap *Logo;
   extern vector<Graphics::TBitmap*> BitmapArrow;
   extern vector<Graphics::TBitmap*> BitmapConnector;
   extern TColor IconSelectedColor;
   extern TColor IconRunningColor;
   extern TColor IconSuccessColor;
   extern TColor IconFailedColor;
   extern TColor IconSkippedColor;
   extern TColor IconUnknownColor;
   extern TColor IconWaitingColor;
   extern TColor IconPausedColor;
   extern TColor IconAlarmColor;
   extern TColor LineColor;
   extern TColor LineShadowColor;
   extern TColor TextColor;
   extern TColor TabTextColor;

   extern bool HomepageLargeIcon;
   extern bool CustLogoFlag;

   extern vector<TColor> IconTextColors;

   extern vector<Graphics::TBitmap*> BitmapBatchBg1;
   extern vector<Graphics::TBitmap*> BitmapBatchBg2;
   extern vector<Graphics::TBitmap*> BitmapBatchBg3;
   extern vector<Graphics::TBitmap*> BitmapJobBg1;
   extern vector<Graphics::TBitmap*> BitmapJobBg2;
   extern vector<Graphics::TBitmap*> BitmapJobBg3;
   extern vector<Graphics::TBitmap*> BitmapExternJobBg1;
   extern vector<Graphics::TBitmap*> BitmapExternJobBg2;
   extern vector<Graphics::TBitmap*> BitmapExternJobBg3;
   extern vector<Graphics::TBitmap*> BitmapGroupBg1;
   extern vector<Graphics::TBitmap*> BitmapGroupBg2;
   extern vector<Graphics::TBitmap*> BitmapGroupBg3;
   extern vector<Graphics::TBitmap*> BitmapFwBg;
   extern vector<Graphics::TBitmap*> BitmapServerBg;
   extern vector<Graphics::TBitmap*> BitmapTimeBg;

   extern vector<Graphics::TBitmap*> BitmapServer;
   extern vector<Graphics::TBitmap*> BitmapServerBg2;

   extern LCID LocaleID;
   extern UTF8String ClientCodeSet;

   extern int ExpireDate;

   enum HIconType { itNormal, itSelected, itRunning, itSuccess,
      itFailed, itSkipped, itUnknown, itWaiting, itPaused, itAlarm };

   enum HArrowDir { adDown, adRight, adUp, adLeft };

   void __fastcall Init(void);
   void __fastcall Close(void);
   void __fastcall RegisterStage(const UTF8String &Type,
      HStage *Prototype);
   HStage * __fastcall CloneStage(const UTF8String &Type);
   void __fastcall ChangeSkin(const UTF8String &Skin);

   void __fastcall Outline(void *Batch);
   void __fastcall DrawLogo(TCanvas *Canvas);
   void __fastcall SetLogFileName(const UTF8String &FileName);
   void WriteLog(const char *FormatStr, ...);
   void __fastcall GetExcludeList(set<UTF8String> &StrSet);
   void __fastcall SetExcludeList(const set<UTF8String> &StrSet);
   void __fastcall ShowMessage(const UTF8String &Msg);
};

#endif
